SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TDANTC_LETR_I01]   
/*---------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                  --*/  
/*---Cliente              : CASSINELLI S.A.              --*/  
/*---Sistema              : Tesoreria                    --*/  
/*---M«dulo               : Empresa                      --*/  
/*---Programa             : Inserci½n TDANTC_LETR  --*/  
/*---Script               : ttproc_i.sql                 --*/  
/*---Nombre SP            : SP_TTPROC_INTE_I02           --*/  
/*---Desarrollado por     : Reynaldo Menacho L.          --*/  
/*---Fecha Creaci«n       : 12/09/2003           --*/  
/*---Base Datos           : Microsoft Sql Server         --*/  
/*---Versi«n              : 2000                         --*/  
/*---Invoca a SP          :                              --*/  
/*---------------------------------------------------------*/  
  
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Maribel Julca Rodriguez      --*/    
/*---Fecha Modificaci©n   : 20/04/2005                   --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/    
/*-------------------------------------------------------*/    
  
/*---------------------------------------------------------*/  
/*---Comentarios                                         --*/  
/*---                                                    --*/  
/*---                                                    --*/  
/*---------------------------------------------------------*/  
  
/*---------------------------------------------------------*/  
/*---Drop Proc NM_TDANTC_LETR_I01                        --*/  
/*---Grant all on NM_TDANTC_LETR_I01 to public           --*/   
/*---NM_TDANTC_LETR_I01 '01' , 1, 1, '03/01/1999',       --*/  
/*--- '03/31/1999', 'N', 1, 0, 0, NULL , NULL            --*/  
/*---------------------------------------------------------*/  
@ISCO_EMPR TD_VC_002,   
@ISCO_USUA_MODI TD_VC_008_USUA,  
@ISCO_UNID_CONC TD_VC_003,   
@ISNU_AMAR TD_VC_010,   
@IDFE_AMAR TD_DT_001,  
@ISCO_ENTI TD_VC_020,  
@INFA_CAMB_DOCU TD_NU_015_006,   
@ISCO_TIPO_OPER TD_VC_003,   
@ISNO_AVAL TD_VC_100,  
@ISNO_DIRE_AVAL TD_VC_100,  
@ISNU_RUCC_AVAL TD_VC_020,  
@ISNU_TELE_AVAL TD_VC_020,  
@ISDE_LUGA_GIRO TD_VC_020,  
@ISDE_OBSE  TD_VC_100,  
@ISNU_SERI TD_VC_003,  
@ISST_MODI TD_VC_001
	As
declare   
@CNNU_ORDE_LETR TD_IN_001,  
@CSUL_CORR_LETR TD_VC_020,  
@CDFE_EMIS    TD_DT_001,  
@CDFE_VENC    TD_DT_001,  
@CNIM_TOTA    TD_NU_016_004,  
@CSCO_MONE    TD_VC_003,  
@CSCO_BANC    TD_VC_003,  
@CSCO_ESTA_DOCU TD_VC_003,  
@CSNO_ENDO    TD_VC_050,  
  
@VNNU_FETC_0001 TD_IN_001,  
@VNNU_ULTI_CORR TD_IN_001,  
@VNNU_LONG TD_IN_001,  
@VSUL_CORR_LETR TD_VC_020,  
@VSCO_COND_CONT TD_VC_003,  
@VSTI_CLIE TD_VC_003,  
  
@OSTI_DOCU_LETR TD_VC_003  
  
  
   Exec SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU_LETR OUTPUT  
  
  /* Obtengo Longitud para el Nœmero de Letra */  
  Select @VNNU_LONG = NU_LONG  
  From TTDOCU_CNTB  
  Where TI_DOCU = @OSTI_DOCU_LETR  
  
  SELECT @VSTI_CLIE = T1.TI_CLIE  
  FROM TMAUXI_EMPR T1, TMPARA_TESO T2  
  WHERE T1.CO_EMPR = @ISCO_EMPR  
  AND T1.CO_EMPR = T2.CO_EMPR  
  AND T1.TI_AUXI_EMPR = T2.CO_TIAU_CLIE  
  AND T1.CO_AUXI_EMPR = @ISCO_ENTI  
  
  
  BEGIN TRAN TDANTC_LETR_I01  
  
   Declare CU_TCCANJ_CLIE_I01_1 Cursor  
   For  
   Select NU_ORDE_LETR, UL_CORR_LETR, FE_EMIS, FE_VENC, CO_MONE, CO_ESTA_DOCU,   
 NO_ENDO, CO_BANC, IM_TOTA  
   From  #TWPLAZ_ANLT  
  
   Open  CU_TCCANJ_CLIE_I01_1  
   Fetch CU_TCCANJ_CLIE_I01_1 Into  
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_EMIS, @CDFE_VENC, @CSCO_MONE, @CSCO_ESTA_DOCU,   
   @CSNO_ENDO, @CSCO_BANC, @CNIM_TOTA  
  
   Select @VNNU_FETC_0001 = @@FETCH_STATUS  
  
   While (@VNNU_FETC_0001 = 0)  
     Begin  
       If (@VNNU_FETC_0001  < 0)  
          Begin  
  RAISERROR 20001 'FIN DE ARCHIVO'  
        CLOSE CU_TCCANJ_CLIE_I01_1  
        DEALLOCATE CU_TCCANJ_CLIE_I01_1  
        RETURN  
          End  
  
   If Rtrim(Isnull(@ISNU_SERI, '')) != ''  
     Begin  
    Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1  
    From TDCORR_FINA  
    Where CO_EMPR = @ISCO_EMPR   
    And TI_DOCU = @OSTI_DOCU_LETR  
    And NU_SERI = @ISNU_SERI  
  
    Update TDCORR_FINA  
    Set NU_ULTI_CORR = @VNNU_ULTI_CORR,
	CO_USUA_MODI = @ISCO_USUA_MODI,  
  	FE_USUA_MODI = GETDATE()  
    Where CO_EMPR = @ISCO_EMPR   
    And TI_DOCU = @OSTI_DOCU_LETR  
    And NU_SERI = @ISNU_SERI  
  
    Select @VSUL_CORR_LETR = @ISNU_SERI + REPLICATE('0', @VNNU_LONG - 2 - Len(@ISNU_SERI) -   
         Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +  
         Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'  
     End  
   Else  
     Begin  
    Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1  
    From TTCORR_FINA  
    Where CO_EMPR = @ISCO_EMPR   
    And TI_DOCU = @OSTI_DOCU_LETR  
  
    Update TTCORR_FINA  
    Set NU_ULTI_CORR = @VNNU_ULTI_CORR,
	CO_USUA_MODI = @ISCO_USUA_MODI,  
	FE_USUA_MODI = GETDATE()  
    Where CO_EMPR = @ISCO_EMPR   
    And TI_DOCU = @OSTI_DOCU_LETR  
  
    Select @VSUL_CORR_LETR = REPLICATE('0', @VNNU_LONG - 2 - Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +  
         Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'  
     End  
    
   If @VSUL_CORR_LETR != @CSUL_CORR_LETR  
     Select @ISST_MODI = 'S'  
  
 /* Grabo en la tabla de Letras */  
 Insert Into TMLETR_CLIE(CO_EMPR, NU_LETR_CLIE, CO_UNID_CONC, CO_TIPO_OPER, CO_BANC, CO_CLIE,   
 FE_EMIS, FE_VENC, FE_PROG_COBR, FA_TIPO_CAMB, CO_MONE, IM_TOTA, NO_ENDO, CO_ESTA_DOCU, NO_AVAL,   
 NO_DIRE_AVAL, NU_RUCC_AVAL, NU_TELE_AVAL, DE_LUGA_GIRO, TI_CLIE, ST_LETR_ADEL, DE_OBSE, CO_USUA_CREA,FE_USUA_CREA, 
CO_USUA_MODI, FE_USUA_MODI)  
 Values (@ISCO_EMPR, @VSUL_CORR_LETR, @ISCO_UNID_CONC, @ISCO_TIPO_OPER, @CSCO_BANC, @ISCO_ENTI,   
 @CDFE_EMIS, @CDFE_VENC, @CDFE_VENC, @INFA_CAMB_DOCU, @CSCO_MONE, @CNIM_TOTA, @CSNO_ENDO, @CSCO_ESTA_DOCU, @ISNO_AVAL,   
 @ISNO_DIRE_AVAL, @ISNU_RUCC_AVAL, @ISNU_TELE_AVAL, @ISDE_LUGA_GIRO, @VSTI_CLIE, 'N', @ISDE_OBSE, 
@ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())  
  
 IF (@@ERROR != 0)  
     BEGIN   
       RAISERROR 20001 'ERROR DE INSERCION'  
       ROLLBACK TRAN  
       RETURN  
     END  
  
 /* Grabo el detalle de letras generadas */  
 Insert Into TDANTC_LETR(CO_EMPR, CO_UNID_CONC, NU_AMAR, FE_AMAR, NU_SECU, NU_LETR_CLIE, CO_MONE_LETR,   
 IM_LETR, CO_ENTI, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
 Values  (@ISCO_EMPR, @ISCO_UNID_CONC, @ISNU_AMAR, @IDFE_AMAR, @CNNU_ORDE_LETR, @VSUL_CORR_LETR, @CSCO_MONE,   
 @CNIM_TOTA, @ISCO_ENTI, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )  
  
 IF (@@ERROR != 0)  
     BEGIN   
       RAISERROR 20001 'ERROR DE INSERCION'  
       ROLLBACK TRAN  
       RETURN  
     END  
  
   Fetch CU_TCCANJ_CLIE_I01_1 Into  
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_EMIS, @CDFE_VENC, @CSCO_MONE, @CSCO_ESTA_DOCU,   
   @CSNO_ENDO, @CSCO_BANC, @CNIM_TOTA  
  
  Select @VNNU_FETC_0001 = @@FETCH_STATUS  
  
END  
  
CLOSE CU_TCCANJ_CLIE_I01_1  
DEALLOCATE CU_TCCANJ_CLIE_I01_1  
  
COMMIT TRAN TDANTC_LETR_I01  
  
Select @ISST_MODI  
  
  
/*--------------------------- Fin -------------------------------- */


GO
